//package com.weimob.mcloud.wechatwork.customer.ipaas;
//
//import com.alibaba.fastjson.JSON;
//import com.weimob.arch.artemis.client.api.consume.ArtemisMessage;
//import com.weimob.arch.artemis.client.api.consume.ArtemisMessages;
//import com.weimob.arch.artemis.client.spring.annotation.ArtemisMessageListener;
//import com.weimob.arch.artemis.client.spring.annotation.Subscribe;
//import com.weimob.mcloud.wechatwork.common.utils.JsonUtil;
//import com.weimob.mcloud.wechatwork.core.entity.privatesphere.PrivateSphere;
//import com.weimob.mcloud.wechatwork.customer.convertor.bos.PrivateSphereCovert;
//import com.weimob.mcloud.wechatwork.customer.domain.ArtemisConstant;
//import com.weimob.mcloud.wechatwork.customer.enums.BiShengEventEnum;
//import com.weimob.mcloud.wechatwork.customer.ipaas.tag.TagMainEventDataDTO;
//import com.weimob.mcloud.wechatwork.customer.ipaas.tag.TagMainEventParam;
//import com.weimob.mcloud.wechatwork.customer.service.TagManageService;
//import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.tag.CustomerTagDTO;
//import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.tag.TagDTO;
//import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.tag.TagGroupDTO;
//import com.weimob.mcloud.wechatwork.customer.third.PrivateSphereThird;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.collections.CollectionUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Objects;
//
///**
// * ipaas 标签信息变更
// * @author tao.gu02
// * @since 1.0
// */
//@Component
//@Slf4j
//public class SaasCdpTagMainConsumer {
//
//    @Autowired
//    private TagManageService tagManageService;
//
//    @Autowired
//    private PrivateSphereThird privateSphereThird;
//
//    /**
//     * 签信息变更
//     * http://pt.saas.weimobqa.com/app/bosops/abilities/apiConfig/messageList/messageDetail/406
//     */
//    @ArtemisMessageListener(
//            value = @Subscribe(topic = ArtemisConstant.Topic.WECHATWORK_SAAS_CDP_TAG_MAIN, user = ArtemisConstant.PAAS_CONSUMER_USER))
//    public void changeCorpExternaluser(ArtemisMessages result) {
//        // 1.从消息里拿出要同步的外部联系人数据
//        List<ArtemisMessage> records = result;
//        if (CollectionUtils.isEmpty(records)) {
//            return;
//        }
//        for (ArtemisMessage record : records) {
//            log.info("cdp标签变更消息, record:{}", JSON.toJSONString(record));
//            //消息元数据
//            PassMessageParam passMessageParam = JsonUtil.str2Obj(record.getValue(), PassMessageParam.class);
//            //消息data转换
//            TagMainEventParam tagMainEventParam = JsonUtil.str2Obj(passMessageParam.getMsgBody(), TagMainEventParam.class);
//            log.info("cdp标签变更, 融合消息, param:{}", JSON.toJSONString(tagMainEventParam));
//
//            if(BiShengEventEnum.UPDATE.getName().equals(tagMainEventParam.getE())) {
//                TagMainEventDataDTO data = tagMainEventParam.getData();
//                if (1 == data.getIs_del()) {
//                    //删除标签
//                    PrivateSphere privateSphere = privateSphereThird.activeByBosId(data.getBos_id());
//                    if (Objects.isNull(privateSphere)) {
//                        log.error("bosId不存在, bosId:{}", data.getBos_id());
//                        return;
//                    }
//
//                    CustomerTagDTO customerTagDTO = new CustomerTagDTO();
//                    customerTagDTO.setPrivateSphereDTO(PrivateSphereCovert.privateSphereDTO(privateSphere));
//
//                    List<TagDTO> tagDTOList = new ArrayList<>();
//                    TagDTO tagDTO = new TagDTO();
//                    TagGroupDTO tagGroupDTO = new TagGroupDTO();
//                    tagGroupDTO.setCdpTagGroupId(data.getTag_id());
//                    tagGroupDTO.setTagGroupName(data.getTag_name());
//                    tagDTO.setTagGroupDTO(tagGroupDTO);
//                    tagDTOList.add(tagDTO);
//
//                    customerTagDTO.setTagDTOList(tagDTOList);
//
//                    try {
//                        //删除客户标签
//                        log.info("删除客户标签关系, 消息来源是cdp标签变更融合消息, request:{}", JSON.toJSONString(customerTagDTO));
//                        tagManageService.removeCustomerTag(customerTagDTO, false);
//                    } catch (Exception e) {
//                        log.error("删除客户标签关系失败, 消息来源是cdp标签变更融合消息, request:{}, error:{}",
//                                JSON.toJSONString(customerTagDTO), JSON.toJSONString(e));
//                    }
//
//                }
//            }
//        }
//    }
//
//}
